Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • View renderedDownload


Console/source/guides/install_firmware.md HEAD (d39339f8) Text, 7.64 KB

[Te6edf3date]: Te6edf3<> (2023-01-12)
[Te6edf3title]: Te6edf3<> (Installing RNode Firmware on Supported Devices)
[Te6edf3image]: Te6edf3<> (images/g2p.webp)
[Te6edf3excerpt]: Te6edf3<> (If you have a T-Beam or LoRa32 device handy, it is very easy to get it set up for all the things that the RNode firmware allows you to do.)
<div class="article_date">{DATE}</div>
Tc9d1d9# Installing RNode Firmware on Supported Devices

Do you have one of the devices available that the RNode Firmware supports? In that case, it is very easy to turn it into a working RNode by using the Ta5d6ff`rnodeconf` autoinstaller.

With the firmware installed, you can use your newly created RNode as:

Tff7b72- A [Tff7b72LoRa interface for Reticulum](Te6edf3{ASSET_PATH}m/interfaces.html#rnode-lora-interface)
Tff7b72- A LoRa packet sniffer with [Tff7b72LoRaMon](Te6edf3https://unsigned.io/loramon/)
Tff7b72- A Linux network interface using the [Tff7b72tncattach program](Te6edf3{ASSET_PATH}pkg/tncattach.zip)
Tff7b72- A LoRa-based TNC for almost any amateur radio packet application

So let's get started! You will need either a **LilyGO T-Beam v1.1**, a **LilyGO LoRa32 v2.0**, a **LilyGO LoRa32 v2.1** or a **Heltec LoRa32 v2** device. More supported devices are added regularly, so it might be useful to check the latest [Tff7b72list of supported devices](Te6edf3{ASSET_PATH}supported.html) as well.

It is currently recommended to use one of the following devices: A **LilyGO LoRa32 v2.1** (also known as **TTGO T3 v1.6.1**) or a **LilyGO T-Beam v1.1**.

![Tff7b72Compatible LoRa devices](Te6edf3{ASSET_PATH}images/g2p.webp)
<center>*Some of the device types compatible with this installation guide*</center>

Tc9d1d9## Device Variations

Some devices come with transceiver chips that are currently unsupported by the RNode Firmware. Currently devices with an **SX1276** or **SX1278** chip are supported. Support for **SX1262**, **SX1268** and **SX1280** is being added. Please support the development with [Tff7b72donations](Te6edf3{ASSET_PATH}donate.html), if you would like to see these chips supported.

Tff7b72> **Beware!** Some devices, like the T-Beam, use SiLabs USB chips. These may need [additional drivers](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers) to work well on macOS and Windows. Linux usually has up-to-date drivers pre-installed. The SiLabs driver may also experience conflicts with earlier, pre-installed versions of the driver, causing a *resource busy* error, which can be fixed by [removing the old driver](https://community.platformio.org/t/mac-usb-port-detected-but-won-t-upload/20663/2).

Tc9d1d9## Preparations

To get started, you will need to install at least version 2.1.0 of the [Tff7b72RNode Configuration Utility](Te6edf3{ASSET_PATH}m/using.html#the-rnodeconf-utility).

The Ta5d6ff`rnodeconf` program is included in the Ta5d6ff`rns` package. Please read [Tff7b72these instructions](Te6edf3{ASSET_PATH}s_rns.html) for more information on how to install it from this repository, or from the Internet. If installation goes well, you can now move on to the next step.

Tc9d1d9## Install The Firmware

We are now ready to start installing the firmware. To install the RNode Firmware on your devices, run the RNode autoinstaller using this command:

Ta5d6ff```Ta5d6fftxt
Ta5d6ffrnodeconf --autoinstall
Ta5d6ff```

The installer will now ask you to insert the device you want to set up, scan for connected serial ports, and ask you a number of questions regarding the device. When it has the information it needs, it will install the correct firmware and configure the necessary parameters in the device EEPROM for it to function properly.

If the install goes well, you will be greated with a success message telling you that your device is now ready.

Tff7b72> **Please Note!** If you are connected to the Internet while installing, the autoinstaller will automatically download any needed firmware files to a local cache before installing.

Tff7b72> If you do not have an active Internet connection while installing, you can extract and use the firmware from this device instead. This will **only** work if you are building the same type of RNode as the device you are extracting from, as the firmware has to match the targeted board and hardware configuration.

If you need to extract the firmware from an existing RNode, run the following command:

Ta5d6ff```
rnodeconf --extract
```

If Ta5d6ff`rnodeconf` finds a working RNode, it will extract and save the firmware from the device for later use. You can then run the auto-installer with the Ta5d6ff`--use-extracted` option to use the locally extracted file:

Ta5d6ff```
rnodeconf --autoinstall --use-extracted
```

This also works for updating the firmware on existing RNodes, so you can extract a newer firmware from one RNode, and deploy it onto other RNodes using the same method. Just use the Ta5d6ff`--update` option instead of Ta5d6ff`--autoinstall`.

Tc9d1d9## Verify Installation
To confirm everything is OK, you can query the device info with:

Ta5d6ff```Ta5d6fftxt
Ta5d6ffrnodeconf --info /dev/ttyUSB0
Ta5d6ff```

Remember to replace Ta5d6ff`/dev/ttyUSB0` with the actual port the installer used in the previous step. You should now see Ta5d6ff`rnodeconf` connect to your device and show something like this:

Ta5d6ff```Ta5d6fftxt
Ta5d6ff[20:11:22] Opening serial port /dev/ttyUSB0...
[20:11:25] Device connected
[20:11:25] Current firmware version: 1.26
[20:11:25] Reading EEPROM...
[20:11:25] EEPROM checksum correct
[20:11:25] Device signature validated
[20:11:25]
[20:11:25] Device info:
[20:11:25] Product : LilyGO LoRa32 v2.0 850 - 950 MHz (b0:b8:36)
[20:11:25] Device signature : Validated - Local signature
[20:11:25] Firmware version : 1.26
[20:11:25] Hardware revision : 1
[20:11:25] Serial number : 00:00:00:02
[20:11:25] Frequency range : 850.0 MHz - 950.0 MHz
[20:11:25] Max TX power : 17 dBm
[20:11:25] Manufactured : 2022-01-27 20:10:32
[20:11:25] Device mode : Normal (host-controlled)
Ta5d6ff```

On the hardware side, you should see the status LED flashing briefly approximately every 2 seconds. If all of the above checks out, congratulations! Your RNode is now ready to use. If your device has a display, it should also come alive and show you various information related to the device state.

If you want to use it with [Tff7b72Reticulum](Te6edf3{ASSET_PATH}s_rns.html), [Tff7b72Nomad Network](Te6edf3{ASSET_PATH}s_nn.html), [Tff7b72LoRaMon](Te6edf3https://unsigned.io/loramon), or other such applications, leave it in the default Ta5d6ff`Normal (host-controlled)` mode.

If you want to use it with legacy amateur radio applications that work with KISS TNCs, you should [Tff7b72set it up in TNC mode](Te6edf3{ASSET_PATH}guides/tnc_mode.html).

Tc9d1d9## External RGB LED
If you are using a **LilyGO LoRa32 v2.1** device, you can connect an external **NeoPixel RGB LED** for device status using the following setup:

Tff7b72- Connect the NeoPixel **V+** pin to the **3.3v** pin on the board.
Tff7b72- Connect the NeoPixel **GND** pin to the **GND** pin on the board.
Tff7b72- Connect the NeoPixel **DATA** pin to **IO Pin 12** on the board.

For the firmware to activate the NeoPixel LED, you must also make specific choices in the autoinstaller guide:

Tff7b72- When asked what type of device you have, select **A specific kind of RNode**.
Tff7b72- When asked what model the device is, select the **Handheld v2.x RNode** that matches the frequency of your board.

Tc9d1d9## External Display & LEDs
If you are using a **LilyGO T-Beam** device, you can connect an external **SSD1306 OLED** display using the following setup:

Tff7b72- The **SSD1306**-based display must be set to use **I2C** and address Ta5d6ff`0x3D`
Tff7b72- Connect display **GND** to T-Beam **GND**
Tff7b72- Connect display **Vin** to suitable power-supplying pin on the T-Beam
Tff7b72- Connect display **RST** to T-Beam **Pin 13**
Tff7b72- Connect display **I2C CLK** to T-Beam **SCL** / **Pin 22**
Tff7b72- Connect display **I2C DATA** to T-Beam **SDA** / **Pin 21**

On **T-Beam** devices, you can also connect external RX/TX LEDs to **Pin 2** and **Pin 4**.


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────